/*
 * zzllrr Mather
 * zzllrr@gmail
 * Released under MIT License
 */
wiki['Formula/Matrix/Determinant']=

detail('行列式常用计算方法', Kx(kbrA([
	piece(['A = O','一行（列）全为0','两行（列）相同','两行（列）成比例'],1)+'⇒ |A| = 0',
	'初等变换'+piece([
		['某行（或列）×k倍','k|A|'],
		['某行（或列）×k倍，加到另一行（列）','|A|'],
		['某两行（列）对换','-|A|']
	]),

	'|I| = 1',
	'|A| = ∏a_{ii} 其中A是上（下）三角（对角）方阵',
	'|(A_{ij})| = ∏|A_{ii}| 准上（下）三角（对角）分块方阵',
	aligned([det([['A','O'],['C','B']],'')+' = |A|⋅|B|','证明：上推，矩阵分块']),
	'|a^T| = |A|',
	'|kA| =k^n|A|',

	'|AB| = |BA| = |A|⋅|B|',
	'|A^{-1}| = |A|^{-1}或写成|A|⋅|A^{-1}| = 1 ~ 其中A可逆',
	'|A^*| = |A|^{n-1}或写成|A|⋅|A^*| = |A|^n',

	'|A| = |A_1| + |A_2| 其中A_1，A_2是A按某一行（列）拆开后的方阵',

	'算法',
	ztable([['初等变换','化成上（下）三角'],
		['展开','按定义（共n!种乘积的代数和）'],
		[aligned(['对角线法则','萨鲁斯法则',kbox('Sarrus rule')]),'展开二阶、三阶'],
		[aligned(['拉普拉斯定理',kbox('Laplace theorem')]),piece([
			'按某些行（列）展开（选定k行或k列），\\\\ k阶子式（共C_n^k个）与其代数余子式乘积之和',
			sum('k',1,'n','a_{ik}A_{ik}','','')+'\\\\ 按一行（列）展开，\\\\ 某行（列）元素与其代数余子式乘积之和'])]]),
	
]))


)+
detail('解法示例',[zdetail('按列展开',Kx('\\small '+Eq([zdet(['x y 0  ','0 x y  ',' ⋱ ⋱ ⋱ ','  0 x y','y   0 x']),'x'+zdet(['x y   ','0 x y  ',' ⋱ ⋱ ⋱ ','  0 x y','   0 x'])+'+(-1)^{n+1}'+zdet(['y 0   ','x y 0  ',' ⋱ ⋱ ⋱ ','  x y 0','   x y']),
'x^n+(-1)^{n+1}y^n','x^n-(-y)^n'])))
].join(br))+

detail('典型行列式',Table([ZLR('行列式 例子')],[

	ZLR('范德蒙'+kxf('Vandermonde')+kbr+'\\small '+zdet(['1 1 1 ⋯ 1','a_1 a_2 a_3 ⋯ a_n','a_1^2 a_2^2 a_3^2 ⋯ a_n^2','⋮ ⋮ ⋮ ⋱ ⋮','a_1^{n-1} a_2^{n-1} a_3^{n-1} ⋯ a_n^{n-1}'],1.5)+kbr2+'='+
		prod('','1≤i < j≤n','','(a_j - a_i)','','')+'____证明方法：数学归纳法'+br+
		'变体：（缺行缺列）'+br+
		'特别解法：（增行增列，分析多项式系数）'+br
		+zdetail('特例：缺某一幂次','\\small '+
			aligned([zdet(['1 1 1 1','a_1 a_2 a_3 a_4','a_1^2 a_2^2 a_3^2 a_4^2','a_1^4 a_2^4 a_3^4 a_4^4'],1.5),
			'首先，对原行列式，增行增列',
			zdet(['1 1 1 1 1','a_1 a_2 a_3 a_4 x','a_1^2 a_2^2 a_3^2 a_4^2 x^2','a_1^3 a_2^3 a_3^3 a_4^3 x^3','a_1^4 a_2^4 a_3^4 a_4^4 x^4'],1.5),
			'然后，套用范德蒙行列式公式',
			zarray(['(x-a_4)(x-a_3)(x-a_2)(x-a_1)','(a_4-a_3)(a_4-a_2)(a_4-a_1)(a_3-a_2)(a_3-a_1)(a_2-a_1)']),
			'得到-x^3项的系数：(a_1+a_2+a_3+a_4)','(a_4-a_3)(a_4-a_2)(a_4-a_1)(a_3-a_2)(a_3-a_1)(a_2-a_1)',
				'='+lrp('',sum('i',1,4,'a_i','',''),'','')+prod('','1≤i < j≤4','','(a_j - a_i)','','')
			]))+br
		
		+zdetail('特例：abcd','\\small '+
			
		
			aligned([zdet(['1 1 1 1','a b c d','a^2 b^2 c^2 d^2','a^4 b^4 c^4 d^4'],1.5),
			'首先，对原行列式，增行增列',
			zdet(['1 1 1 1 1','a b c d x','a^2 b^2 c^2 d^2 x^2','a^3 b^3 c^3 d^3 x^3','a^4 b^4 c^4 d^4 x^4'],1.5),
			'然后，套用范德蒙行列式公式',
			zarray(['(x-a)(x-b)(x-c)(x-d)','(d-c)(d-b)(d-a)(c-b)(c-a)(b-a)']),
			'得到-x^3项的系数：','(a+b+c+d)(d-c)(d-b)(d-a)(c-b)(c-a)(b-a)',
			'方法二：还可通过第2，3，4行减去第1行相应倍数，降阶处理'
			]))

				,'','____'),
	
	[aligned(['带形'+kxf('band'),'\\small '+
		zdet(['a b   ','c a b  ',' ⋱ ⋱ ⋱ ','  c a b','   c a']),
			'='+piece([['(n+1)(a/2)^n','当a^2=4bc时'],
				[frac('α^{n+1} - β^{n+1}','α-β',1),'当a^2≠4bc时']]),

			'= α^n+α^{n-1}β+⋯+αβ^{n-1}+β^n',
			'= '+sum('i',0,'n','α^{n-i}β^i','',''),
			'~',
			'其中α,β是','x^2-ax+bc=0两个根']),
		zdetail('特例：'+'\\small '+zdet(['a b','c a']),'\\small '+

		aligned([zdet(['a b   ','c a b  ',' ⋱ ⋱ ⋱ ','  c a b','   c a']),
				zarray(['按第1列或行展开，得到','D_n = aD_{n-1}-bcD_{n-2}']),'',
				'当a^2=4bc时',
					'D_n-'+frac('a',2,'t')+'D_{n-1} = '+frac('a',2,'t')+'(D_{n-1} - '+frac('a',2,'t')+'D_{n-2}) '+
					'= ⋯ = ('+frac('a',2,'t')+')^{n-2}(D_2 - '+frac('a',2,'t')+'D_1) = ('+frac('a',2,'t')+')^n',
					frac('a',2,'t')+'D_{n-1} - ('+frac('a',2,'t')+')^2D_{n-2} = ('+frac('a',2,'t')+')^n',
					'⋮',
					'('+frac('a',2,'t')+')^{n-2}D_2 - ('+frac('a',2,'t')+')^{n-1}D_1 = ('+frac('a',2,'t')+')^n',
					'上述等式累加得到，',
					'D_n - a('+frac('a',2,'t')+')^{n-1} = (n-1)('+frac('a',2,'t')+')^n',
					'D_n = (n+1)('+frac('a',2,'t')+')^n','',
				'当a^2≠4bc时',
					'按第1列或行展开，D_n =(α+β)D_{n-1} - αβD_{n-2}',
					'其中α,β是x^2-ax+bc=0两个不同的根，则',
					Eq([['D_n - αD_{n-1}','β(D_{n-1}- αD_{n-2})','⋯','β^{n-2}(D_2 - αD_1)','β^n & ~ ①'],
						['D_n - βD_{n-1}','α(D_{n-1} - βD_{n-2})','⋯','α^{n-2}(D_2 - βD_1)','α^n & ~ ②']]),
					'②×α- ①×β，得到',
					'(α-β)D_n =α^{n+1}-β^{n+1}',
					'D_n = '+frac('α^{n+1}-β^{n+1}','α-β','')])
			)+br+

			Arrf(function(x){//暂不实现x替换
				return zdetail('变体：'+zdet(['b b','c a'],''),'\\small '+
				aligned([
					zdet(['b b   ','c a b  ',' ⋱ ⋱ ⋱ ','  c a b','   c a']),
					zarray(['按第1列或行展开，得到','D_n = bD_{n-1}-bcD_{n-2}']),
						'当a^2=4bc时',
						Eq([['D_n','bn('+frac('a',2,'t')+')^{n-1} - bc(n-1)('+frac('a',2,'t')+')^{n-2}'],
							'b('+frac('an',2,'t')+'-c(n-1))('+frac('a',2,'t')+')^{n-2}',
							'b('+frac('an',2,'t')+'-cn+c)('+frac('a',2,'t')+')^{n-2}'
						]),' ~ ','当a^2≠4bc时','设α,β是x^2-ax+bc=0两个不同的根，则',
						Eq([['D_n',frac('b(α^n-β^n) - bc(α^{n-1}-β^{n-1})','α-β','')],
							frac('b(α^n-β^n) - αβ(α^{n-1}-β^{n-1})','α-β',''),
							frac('b(α^n-β^n) - (βα^n-αβ^n)','α-β',''),
							frac('(b-β)α^n-(b-α)β^n','α-β','')]),
						'特殊地，',
						'当b=α或β时，D_n=b^n'
				])
				)
			},[['a','b','c']]).join(br+br)

			+fdetail("(x){var A=[x,times([2,x]),square(x),pppow(x),visiplusk(pptd(neg(x),1,1))];A.push(pptd(A[2]));"+
				"A.push(visiplusk(neg(A[2])),pptd(x,1),simPowOf1(x,'n'),simPowOf1(x,'n-2','D_2'+A[4]+'D_1'));"+
				"return zdetail('特例：'+'\\\\small '+Eq([det([[A[1],A[2]],['1',A[1]]],''),det([[A[1],'1'],[A[2],A[1]]],''),det([[A[1],x],[x,A[1]]],''),'(n+1)'+A[3]+'^n'],'','line'),"+
				"aligned([det([[A[1],A[2],'','',''],[1,A[1],A[2],'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',1,A[1],A[2]],['','','',1,A[1]]],'')+'='+"+
					"det([[A[1],1,'','',''],[A[2],A[1],1,'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',A[2],A[1],1],['','','',A[2],A[1]]],'')+'='+"+
					"det([[A[1],x,'','',''],[x,A[1],x,'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',x,A[1],x],['','','',x,A[1]]],''),"+
					"'按第1列或行展开，得到',"+
					"'D_n = '+pptd(A[1],1)+'D_{n-1}'+A[6]+'D_{n-2}',"+
					"'则 D_n'+A[4]+'D_{n-1} ='+A[7]+'(D_{n-1}'+A[4]+'D_{n-2}) = ⋯ = '+"+
					"simPowOf1(x,'n-2','D_2'+A[4]+'D_1')+'='+A[8],"+
					"A[7]+'D_{n-1}'+A[6]+'D_{n-2} ='+A[8],"+
					"'⋮',"+
					"simPowOf1(x,'n-2')+'D_2 - '+simPowOf1(x,'n-1','','D_1')+'='+A[8],"+
					"'上述等式累加得到',"+
					"'D_n - '+simPowOf1(x,'n-1','',pptd(A[1]))+' = (n-1)'+A[8],'即'+"+
					"'D_n = (n+1)'+A[8]"+
					"]))"+
			"}",['a'])

			+fdetail("(x){"+
				"return zdetail('特例：'+'\\\\small '+(det([['2\\\\cos θ',1],[1,'2\\\\cos θ']],'')+' = '+frac('\\\\sin (n+1)θ','\\\\sin θ','')).replace(/θ/g,x),"+
				"aligned([zdet(['2\\\\cos{θ} 1   ','1 2\\\\cos{θ} 1  ',' ⋱ ⋱ ⋱ ','  1 2\\\\cos{θ} 1','   1 2\\\\cos{θ}']),"+
					"'按第1列或行展开，得到',"+
					"'D_n=2\\\\cos θD_{n-1}-D_{n-2}',"+
					"Eq(['则D_n - (\\\\cos θ+i\\\\sin θ)D_{n-1}',"+
						"'(\\\\cos θ-i\\\\sin θ)(D_{n-1} - (\\\\cos θ+i\\\\sin θ)D_{n-2})',"+
						"'⋯','(\\\\cos θ-i\\\\sin θ)^{n-2}(D_2 - (\\\\cos θ+i\\\\sin θ)D_1)',"+
						"'(\\\\cos θ-i\\\\sin θ)^n ~ ①']),"+
					"'~',"+
					"Eq(['D_n - (\\\\cos θ-i\\\\sin θ)D_{n-1}',"+
						"'(\\\\cos θ+i\\\\sin θ)(D_{n-1} - (\\\\cos θ-i\\\\sin θ)D_{n-2})',"+
						"'⋯','(\\\\cos θ+i\\\\sin θ)^{n-2}(D_2 - (\\\\cos θ-i\\\\sin θ)D_1)',"+
						"'(\\\\cos θ+i\\\\sin θ)^n ~ ②']),"+
					"'~',"+
					"'②×(\\\\cos θ+i\\\\sin θ)- ①×(\\\\cos θ-i\\\\sin θ)，得到',"+
					"Eq([['2i\\\\sin θD_n ','(\\\\cos θ+i\\\\sin θ)^{n+1}-(\\\\cos θ-i\\\\sin θ)^{n+1}'],"+
						"'(\\\\cos (n+1)θ+i\\\\sin (n+1)θ)-(\\\\cos (n+1)θ-i\\\\sin (n+1)θ)',"+
						"'2i\\\\sin (n+1)θ']),"+
					"'D_n = '+frac('\\\\sin (n+1)θ','\\\\sin θ',''),"+
				"]).replace(/θ/g,x))"+
				"}",['α','θ'])
		
			+fdetail("(x){return zdetail('变体：'+'\\\\small '+(det([['\\\\cos θ',1],[1,'2\\\\cos θ']],'')+' = \\\\cos nθ').replace(/θ/g,x),"+
					"aligned([zdet(['\\\\cos{θ} 1   ','1 2\\\\cos{θ} 1  ',' ⋱ ⋱ ⋱ ','  1 2\\\\cos{θ} 1','   1 2\\\\cos{θ}']),"+
						"'按第1列或行展开，得到',"+
						"Eq(['\\\\cos θD_{n-1} - D_{n-2}',"+
							"frac('\\\\cos θ\\\\sin nθ','\\\\sin θ','')+' - '+frac('\\\\sin (n-1)θ','\\\\sin θ',''),"+
							"frac('\\\\cos θ[\\\\sin (n-1)θ\\\\cos θ + \\\\sin θ\\\\cos (n-1)θ]','\\\\sin θ','')+' - '+frac('\\\\sin (n-1)θ','\\\\sin θ',''),"+
							"frac('\\\\sin (n-1)θ\\\\cos ^2θ + \\\\sin θ\\\\cos θ\\\\cos (n-1)θ - \\\\sin (n-1)θ','\\\\sin θ',''),"+
							"frac('-\\\\sin (n-1)θ\\\\sin ^2θ + \\\\sin θ\\\\cos θ\\\\cos (n-1)θ','\\\\sin θ',''),"+
							"'-\\\\sin (n-1)θ\\\\sin θ + \\\\cos θ\\\\cos (n-1)θ',"+
							"'\\\\cos [(n-1)θ+θ]',"+
							"'\\\\cos nθ'"+
							"])"+
					"]).replace(/θ/g,x))"+
				"}",['α','θ'])


			+fdetail("(x,y){var A=[x,y];A.push(plus(A),times(A),minus(A),pppow(x),pppow(y));"+ // A[6]
				"A.push('','',pptd(A[2]),pptd(A[4],1),visiplus(neg(x)),visiplus(neg(y)));"+ // A[12]
		
				"A.push('',simPowOf1(x,'n'),simPowOf1(x,'n+1'), '',simPowOf1(y,'n'),simPowOf1(y,'n+1'));"+	//A[18]

				
				"A.push(A[15]+'-'+A[18], simFracOf1(A[4],[['-'],[A[15],A[18]]]));"+ // A[20]
			
				"A.push(visiplusk(pptd(neg(x),1)), visiplusk(pptd(neg(y),1)));"+
					
			"return zdetail('特例：'+'\\\\small '+det([[A[2],A[3]],[1,A[2]]],'')+' = '+det([[A[2],x],[y,A[2]]],'')+' = '+A[20],"+
				
					"aligned([det([[A[2],A[3],'','',''],[1,A[2],A[3],'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',1,A[2],A[3]],['','','',1,A[2]]],''),"+
						"'='+det([[A[2],x,'','',''],[y,A[2],x,'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',y,A[2],x],['','','',y,A[2]]],''),"+
						"'按第1列或行展开，得到',"+
						"'D_n='+A[2]+'D_{n-1}'+visiplus(pptd(neg(A[3]),1))+'D_{n-2}',"+
					
						"'D_n'+A[11]+'D_{n-1} = '+simTimesOf1(y,'D_{n-1}'+A[21]+'D_{n-2}')+' = ⋯ = '+simTimesOf1(pow([A[6],'n-2']),'D_2'+A[21]+'D_1')+' = '+A[17]+' ~ ①',"+
						"'D_n'+A[12]+'D_{n-1} = '+simTimesOf1(x,'D_{n-1}'+A[22]+'D_{n-2}')+' = ⋯ = '+simTimesOf1(pow([A[5],'n-2']),'D_2'+A[22]+'D_1')+' = '+A[14]+' ~ ②',"+

						"'②×'+pptd(x)+'- ①×'+pptd(y)+'，得到',"+
						"A[10]+'D_n ='+A[19],"+
						"'D_n = '+A[20],"+
					"]))"+
				"}",['a,b','α,β'])


			+fdetail("(a){var A=[a,neg(a),minus([1,a]),plus([1,a])];"+
				"A.push(pppow(A[1]),visiplus(A[0]));"+
				"A.push('1-'+A[4]+'^{n+1}', simFracOf1(A[3],[['-'],[1,A[4]+'^{n+1}']]));"+
				
			"return zdetail('特例：'+'\\\\small '+det([[A[2],A[0]],[-1,A[2]]],'')+'='+det([[A[2],A[1]],[1,A[2]]],'')+'='+A[7],"+
				
				"aligned([det([[A[2],A[0],'','',''],[-1,A[2],A[0],'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',-1,A[2],A[0]],['','','',-1,A[2]]],'')+"+
					"' = '+det([[A[2],A[1],'','',''],[1,A[2],A[1],'',''],ZLR(' ⋱ ⋱ ⋱ '),['','',1,A[2],A[1]],['','','',1,A[2]]],''),"+
					"'按第1列或行展开，得到',"+
					"'D_n='+pptd(A[2],1)+'D_{n-1}'+A[5]+'D_{n-2}',"+
					"'D_n - D_{n-1} = '+pptd(A[1],1)+'(D_{n-1} - D_{n-2}) = ⋯ = '+A[4]+'^{n-2}(D_2 - D_1) = '+A[4]+'^n ~ ①',"+
					"'D_n'+A[5]+'D_{n-1}'+' = D_{n-1}'+A[5]+'D_{n-2}'+' = ⋯ = D_2'+A[5]+'D_1 = 1 ~ ②',"+
					"'②+ ①×'+pptd(A[0])+'，得到',"+
					"pptd(A[3],1)+'D_n = '+A[6],"+
					"'D_n = '+A[7],"+
				"]))"+
			"}",['a',-2])

			+fdetail("(a,b){var A=[a,b,pptd(a,1),pptd(b),pow([a,'n-1'],1),pow([b,'n-1']),pow([a,'n']),pow([neg(b),'n'])];"+//A[7]

				"A.push(minus([A[6],A[7]]));"+
				
			"return zdetail('特例：'+'\\\\small '+det([[a,b],[0,a]],'')+'='+det([[A[2],A[1]],[1,A[2]]],'')+'='+A[8],"+
				
				"Eq([det([[a,b,0,'⋯',0,0],[0,a,b,'⋯',0,0],[0,0,a,'⋱',0,0],ZLR('⋮ ⋮ ⋮ ⋱ ⋱ ⋮'),[0,0,0,'⋯',a,b],[b,0,0,'⋯',0,a]],''),"+
					"A[2]+det([[a,b,'⋯',0,0],[0,a,'⋱',0,0],ZLR('⋮ ⋮ ⋱ ⋱ ⋮'),[0,0,'⋯',a,b],[0,0,'⋯',0,a]],'')+"+
					"'+(-1)^{n+1}'+A[3]+det([[b,0,'⋯',0,0],[a,b,'⋯',0,0],[0,a,'⋱',0,0],ZLR('⋮ ⋮ ⋱ ⋱ ⋮'),[0,0,'⋯',a,b]],''),"+
					"simTimesOf1(a,'',A[4])+'+(-1)^{n+1}'+Times([b,A[5]]).toStr(1),"+
					"A[8]],['按第1列展开','主对角线元素相乘','化简'"+

				"]))"+
			"}",['a,b','x,y'])
		],

	ZLR('左循环'+kxf('cyclic')+'（副主对角线相等）'+kbr+'\\small '+zdet(['1 2 3 ⋯ n-1 n','2 3 4 ⋯ n 1','3 4 5 ⋰ 1 2','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','n-1 n 1 ⋯ n-3 n-2','n 1 2 ⋯ n-2 n-1'])+kbr2+'='+
		'(-1)^{\\frac{n(n-1)}{2}}\\frac{(n+1)n^{n-1}}{2}'+'____'+
		zdetail('特例：'+'\\small '+zdet(['1 2 3 ⋯ n-1 n','2 3 4 ⋯ n 1','3 4 5 ⋯ 1 2','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','n-1 n 1 ⋯ n-3 n-2','n 1 2 ⋯ n-2 n-1']),'\\small '+
		aligned([
			Eq([zdet(['1 2 3 ⋯ n-1 n','2 3 4 ⋯ n 1','3 4 5 ⋰ 1 2','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','n-1 n 1 ⋯ n-3 n-2','n 1 2 ⋯ n-2 n-1']),
				'{n(n+1)}\\/2'+zdet(['1 2 3 ⋯ n-1 n','1 3 4 ⋯ n 1','1 4 5 ⋯ 1 2','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','1 n 1 ⋯ n-3 n-2','1 1 2 ⋯ n-2 n-1']),
				'{n(n+1)}\\/2'+zdet(['1 1 1 ⋯ 1 1','1 2 1 ⋯ 1 1-n','1 3 1 ⋯ 1-n 1','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','1 n-1 1-n ⋯ 1 1','1 0 1 ⋯ 1 1']),
				'{n(n+1)}\\/2'+zdet(['1 0 0 ⋯ 0 0','1 1 0 ⋯ 0 -n','1 2 0 ⋯ -n 0','⋮ ⋮ ⋰ ⋰ ⋮ ⋮','1 n-2 -n ⋯ 0 0','1 -1 0 ⋯ 0 0']),
				'(-1)^{n+1}{n(n+1)}\\/2'+zdet(['0 ⋯ 0 -n','0 ⋯ -n 0','⋮ ⋰ ⋮ ⋮','-n ⋯ 0 0']),
				'(-1)^{n+1}{n(n+1)}\\/2(-n)^{n-2}(-1)^{n-1+n-2+⋯+2}',
				'(-1)^{\\frac{n(n-1)}{2}}\\frac{(n+1)n^{n-1}}{2}'
				],[['第2~n-1列都加到第1列','提取公因子'],['从第n列到第2列，','每一列都减去前1列'],
				'第2～n列都减去第1列',['按第1行展开,','再按最后1行展开'],
				['副对角形上元素相乘','注意符号']
			]),
		])),'','____'),

	ZLR('循环'+kxf('cyclic')+'（主对角线相等）'+kbr+'\\small '+zdet(['a_1 a_2 a_3 ⋯ a_n','a_n a_1 a_2 ⋯ a_{n-1}','a_{n-1} a_n a_1 ⋯ a_{n-2}','⋮ ⋮ ⋮ ⋱ ⋮','a_2 a_3 a_4 ⋯ a_1'])+kbr2+'='+
		[prod('k',0,'n-1','f(ε_k) = '+prod('k',0,'n-1',sum('i',0,'n-1','a_{i+1}ε_k^i','',''),'',''),'',''),
		'~',
		'其中f(x)=a_1+a_2x+⋯+a_nx^{n-1}',
		'ε_k=\\cos '+frac('2kπ','n','')+' + i\\sin '+frac('2kπ','n','')+' = e^{i'+frac('2kπ','n','t')+'}',
		'(其中k=0,1,⋯,n-1)','是全部n次单位根'].join(kbr)+'____'+
		
		zdetail('特例：3阶'+'\\small '+zdet(['x y z','z x y','y z x'])+' = (x+y+z)(x^2+y^2+z^2-xy-xz-yz)',
			Eq([zdet(['x y z','z x y','y z x']),
				'(x+y+z)'+zdet(['1 y z','1 x y','1 z x']),
				'(x+y+z)'+zdet(['1 y z','0 x-y y-z','0 z-y x-z']),
				'(x+y+z)((x-y)(x-z)+(y-z)^2)',
				'(x+y+z)(x^2+y^2+z^2-xy-xz-yz)',
				frac('(x+y+z)((x-y)^2+(y-z)^2+(z-x)^2)',2,''),
			],[['全部加到第1列','并提取第1列公因子'],'各行减去第1行','按第1列展开','展开，得到','或写成'])
		)+br+
		zdetail('特例：4阶'+'\\small '+zdet(['a b c d','d a b c','c d a b','b c d a'])+' =(a+b+c+d)(a-b+c-d)((a-c)^2+(b-d)^2)',
			Eq([zdet(['a b c d','d a b c','c d a b','b c d a'])+'注意：行列式及结果中a与c，b与d的对称性',
				'(a+b+c+d)'+zdet(['1 b c d','1 a b c','1 d a b','1 c d a']),
				'(a+b+c+d)'+zdet(['1 b c d','0 a-b b-c c-d','0 d-b a-c b-d','0 c-b d-c a-d']),
				'(a+b+c+d)'+zdet(['a-b b-c c-d','d-b a-c b-d','c-b d-c a-d']),
				'(a+b+c+d)'+zdet(['a-b+c-d b-c c-d','0 a-c b-d','a-b+c-d d-c a-d']),
				'(a+b+c+d)(a-b+c-d)'+zdet(['1 b-c c-d','0 a-c b-d','1 d-c a-d']),
				'(a+b+c+d)(a-b+c-d)'+zdet(['1 b-c c-d','0 a-c b-d','0 d-b a-c']),
				'(a+b+c+d)(a-b+c-d)((a-c)^2+(b-d)^2)',
				'((a+c)^2-(b+d)^2)((a-c)^2+(b-d)^2)',
				],[['全部加到第1列','并提取第1列公因子'],'各行减去第1行','按第1列展开','第3列加到第1列','提取第1列公因子','第3行减去第1行','按第1列展开','或写成'])
		)+br+
		zdetail('特例：对角线为0（3阶）'+'\\small '+zdet(['0 x y','y 0 x','x y 0'])+' = x^3+y^3',
			Eq([zdet(['0 x y','y 0 x','x y 0']),
				zdet(['0 y x','x 0 y','y x 0'])+'\\qquad 本题还可直接使用对角线法则展开',
				'(x+y)'+zdet(['1 x y','1 0 x','1 y 0']),
				'(x+y)'+zdet(['1 x y','0 -x x-y','0 y-x -y']),
				'(x+y)(xy+(x-y)^2)',
				'(x+y)(x^2-xy+y^2)',
				'x^3+y^3',
				],['转置或x,y对换',['全部加到第1列','并提取第1列公因子'],'各行减去第1行','按第1列展开','展开，得到','立方和公式'])
		)+br+

		zdetail('特例：对角线为0（4阶）'+'\\small '+zdet(['0 x y z','z 0 x y','y z 0 x','x y z 0'])+'\\\\ = (x+y+z)(y-z-x)(x^2+y^2+z^2-2xz)',
			Eq([zdet(['0 x y z','z 0 x y','y z 0 x','x y z 0']),
				zdet(['0 z y x','x 0 z y','y x 0 z','z y x 0'])+'注意：行列式及结果中x与z的对称性',
				'(x+y+z)'+zdet(['1 x y z','1 0 x y','1 z 0 x','1 y z 0']),
				'(x+y+z)'+zdet(['1 x y z','0 -x x-y y-z','0 z-x -y x-z','0 y-x z-y -z']),
				'(x+y+z)'+zdet(['-x x-y y-z','z-x -y x-z','y-x z-y -z']),
				'(x+y+z)'+zdet(['y-z-x x-y y-z','0 -y x-z','y-z-x z-y -z']),
				'(x+y+z)(y-z-x)'+zdet(['1 x-y y-z','0 -y x-z','1 z-y -z']),
				'(x+y+z)(y-z-x)'+zdet(['1 x-y y-z','0 -y x-z','0 z-x -y']),
				'(x+y+z)(y-z-x)(y^2+(x-z)^2)',
				'(x+y+z)(y-z-x)(x^2+y^2+z^2-2xz)',
				'(y^2-(x+z)^2)(y^2+(x-z)^2)',
				],['转置或x,z对换',['全部加到第1列','并提取第1列公因子'],'各行减去第1行','按第1列展开','第3列加到第1列','提取第1列公因子','第3行减去第1行','按第1列展开','展开，得到','或写成']))
			,'','____'),
				
	
	ZLR(kxf('b循环, b轮换, b-cyclic')+kbr+'\\small '+zdet(['a_1 a_2 a_3 ⋯ a_n','ba_n a_1 a_2 ⋯ a_{n-1}','ba_{n-1} ba_n a_1 ⋯ a_{n-2}','⋮ ⋮ ⋮ ⋱ ⋮','ba_2 ba_3 ba_4 ⋯ a_1'])+kbr2+'='+
		[prod('k',0,'n-1','f(b_k) = '+prod('k',0,'n-1',sum('i',0,'n-1','a_{i+1}b_k^i','',''),'',''),'',''),
		'~',
		'其中f(x)=a_1+a_2x+⋯+a_nx^{n-1}',
		'b_k(其中k=0,1,⋯,n-1)','是x^n=b的复根'].join(kbr)+'____','','____'),
	
	ZLR(kxf('反循环 anti-cyclic, b循环行列式的特殊情况')+kbr+'\\small '+zdet(['a_1 a_2 a_3 ⋯ a_n','-a_n a_1 a_2 ⋯ a_{n-1}','-a_{n-1} -a_n a_1 ⋯ a_{n-2}','⋮ ⋮ ⋮ ⋱ ⋮','-a_2 -a_3 -a_4 ⋯ a_1'])+kbr2+'='+
		[prod('k',0,'n-1','f(b_k) = '+prod('k',0,'n-1',sum('i',0,'n-1','a_{i+1}b_k^i','',''),'',''),'',''),
		'~',
		'其中f(x)=a_1+a_2x+⋯+a_nx^{n-1}',
		'b_k=\\cos '+frac('kπ','n','')+' + i\\sin '+frac('kπ','n','')+' = e^{i'+frac('kπ','n','t')+'}',
		'(其中k=0,1,⋯,n-1)','是x^n=-1的复根'].join(kbr)+
		'____','','____'),


	ZLR('双拼三角'+kbr+'\\small '+zdet(['x y y ⋯ y','z x y ⋯ y','z z x ⋯ y','⋮ ⋮ ⋮ ⋱ ⋮','z z z ⋯ x'])+kbr2+'='+
		piece([['(x-y)^n+ny(x-y)^{n-1}','当y=z时'],
			[frac('z(x-y)^n-y(x-z)^n','z-y',1),'当y≠z时']
			])+'____'+
		zdetail('特例：'+'\\small '+zdet(['x y','z x']),'\\small '+
			aligned([
				Eq([zdet(['x y y ⋯ y','z x y ⋯ y','z z x ⋯ y','⋮ ⋮ ⋮ ⋱ ⋮','z z z ⋯ x']),
					zdet(['z y y ⋯ y','z x y ⋯ y','z z x ⋯ y','⋮ ⋮ ⋮ ⋱ ⋮','z z z ⋯ x'])+'+'+zdet(['x-z y y ⋯ y','0 x y ⋯ y','0 z x ⋯ y','⋮ ⋮ ⋮ ⋱ ⋮','0 z z ⋯ x']),
					'z'+zdet(['1 y y ⋯ y','1 x y ⋯ y','1 z x ⋯ y','⋮ ⋮ ⋮ ⋱ ⋮','1 z z ⋯ x'])+'+(x-z)D_{n-1}',
					'z'+zdet(['1 0 0 ⋯ 0','1 x-y 0 ⋯ 0','1 z-y x-y ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','1 z-y z-y ⋯ x-y'])+'+(x-z)D_{n-1}',
					'z(x-y)^{n-1}+(x-z)D_{n-1}',
					],['按第1列拆开',['第1个行列式提取第1列公因子z','第2个行列式按第1列展开'],
					'第2～n列都减去第1列的y倍',
					'按第1行展开']),
				'则D_n=(x-z)D_{n-1}+z(x-y)^{n-1}',
				'(x-z)D_{n-1}=(x-z)^2D_{n-2}+z(x-z)(x-y)^{n-2}',
				'(x-z)^2D_{n-2}=(x-z)^3D_{n-3}+z(x-z)^2(x-y)^{n-3}',
				'⋮',
				'(x-z)^{n-2}D_2=(x-z)^{n-1}D_1+z(x-z)^{n-2}(x-y)=(x-z)^{n-1}x+z(x-z)^{n-2}(x-y)',
				'上述等式累加，并消去等式两边相同项，得到',
				'D_n=z((x-y)^{n-1}+(x-z)(x-y)^{n-2}+(x-z)^2(x-y)^{n-3}',
				'+⋯+(x-z)^{n-2}(x-y)+(x-z)^{n-1})+(x-z)^n',
				'='+piece([['(x+(n-1)y)(x-y)^{n-1}','当y=z时'],
						[frac('z(x-y)^n-y(x-z)^n','z-y',''),'当y≠z时']
					])
			])),'','____'),

	ZLR('对称(暂无公式)____'+
		zdetail('特例：对角线都是0，非循环排列'+'\\small '+zdet(['0 x y z','x 0 z y','y z 0 x','z y x 0'])+'\\\\ =(x+y+z)(x-y-z)(x+y-z)(x-y+z)','\\small '+
			Eq([zdet(['0 x y z','x 0 z y','y z 0 x','z y x 0']),
				'(x+y+z)'+zdet(['1 x y z','1 0 z y','1 z 0 x','1 y x 0']),
				'(x+y+z)'+zdet(['1 x y z','0 -x z-y y-z','0 z -z x-y','0 y-z x -x']),
				'(x+y+z)'+zdet(['-x 0 y-z','z x-y-z x-y','y-z 0 -x']),
				'(x+y+z)(x-y-z)'+zdet(['-x y-z','y-z -x']),
				'(x+y+z)(x-y-z)(x+y-z)(x-y+z)'
				],[['第2、3、4列加到第1列','提取第1列公因子'],
					['从第4行起，到第2行','每一行都减去上一行'],
					['按第1列展开','第3列加到第2列'],
					'按第2列展开',
					['按对角线法则展开','用平方差公式进行因式分解']
				])
		)+
		zdetail('特例：对称递增'+'\\small '+zdet(['1 2 3 ⋯ n-1 n','2 1 2 ⋯ n-2 n-1','3 2 1 ⋯ n-3 n-2','⋮ ⋮ ⋮ ⋱ ⋮ ⋮','n-1 n-2 n-3 ⋯ 1 2','n n-1 n-2 ⋯ 2 1'])+'\\\\ =(-1)^{n+1}2^{n-2}(n+1)','\\small '+
			Eq([zdet(['1 2 3 ⋯ n-1 n','2 1 2 ⋯ n-2 n-1','3 2 1 ⋯ n-3 n-2','⋮ ⋮ ⋮ ⋱ ⋮ ⋮','n-1 n-2 n-3 ⋯ 1 2','n n-1 n-2 ⋯ 2 1']),
				zdet(['1 2 3 ⋯ n-1 n','1 -1 -1 ⋯ -1 -1','1 1 -1 ⋯ -1 -1','⋮ ⋮ ⋮ ⋱ ⋮ ⋮','1 1 1 ⋯ -1 -1','1 1 1 ⋯ 1 -1']),
				zdet(['1 2 3 ⋯ n-1 n','1 -1 -1 ⋯ -1 -1','0 2 0 ⋯ 0 0','⋮ ⋮ ⋱ ⋱ ⋮ ⋮','0 0 0 ⋱ 0 0','0 0 0 ⋯ 2 0']),
				zdet(['1 3 ⋯ n n+1','1 0 ⋯ 0 0','0 2 ⋯ 0 0','⋮ ⋮ ⋱ ⋮ ⋮','0 0 ⋯ 2 0']),
				'(-1)^{n+1}2^{n-2}(n+1)'
				],[['从最后一行开始到第2行','每一行减去上一行'],['从最后一行开始到第2行','每一行减去上一行'],'第1列加到其余各列','按最后一列展开，得到'])
		)
		
		,'','____'),
		
	ZLR('反对称'+piece([[0,'奇数阶'],['暂无公式','偶数阶']])+'____-A=A^T ⇒ |-A|=|A^T|=|A| ⇒ (-1)^n|A|=|A| ⇒ n为奇数，则|A|=0','','____'),
	ZLR('内嵌拟反对称'+kbr+'\\small '+zdet(['a b c d','b -a d -c','c -d -a b','d c -b -a'])+kbr2+'=-(a^2+b^2+c^2+d^2)^2____D^2=DD^T=|(a^2+b^2+c^2+d^2)I|=(a^2+b^2+c^2+d^2)^4','','____'),
	ZLR('行相同对角不同'+kbr+'\\small '+aligned([zdet(['a_1+x_1 a_2 a_3 ⋯ a_n','a_1 a_2+x_2 a_3 ⋯ a_n','a_1 a_2 a_3+x_3 ⋯ a_n','⋮ ⋮ ⋮ ⋱ ⋮','a_1 a_2 a_3 ⋯ a_n+x_n']),'其中x_i≠0',
		'A=(a_1, a_2, a_3, ⋯, a_n)^T(1, 1, 1, ⋯, 1)',
		'+'+kxf('diag','x_1, x_2, x_3, ⋯, x_n'),
		'|A|=',lrp('','1 + '+sum('i',1,'n',frac('a_i','x_i',1),'',''),'','')+prod('i',1,'n','x_i','',''),
		'=x_1x_2x_3⋯x_n'+lrp('','1 + '+sum('i',1,'n',frac('a_i','x_i',1),'',''),'','')])+'____'
		
		+fdetail("(x,a){var A=[x,a,a+'_i',x+'_n',x+'_i'];A.push(frac(A[2],A[4],''));"+
			"A.push(lrp('','1+'+sum('i',1,'n',frac(A[2],A[4],''),'',''),'',''));"+
			
		"return zdetail('特例：行'+a+'_{1,2,⋯,n}，对角线'+$2v('$1_1+$0_1, $1_2+$0_2, ⋯, $1_n+$0_n',A),'\\\\small'+"+
			
			"Eq([zdet($2v(['$1_1+$0_1 $1_2 $1_3 ⋯ $1_n','$1_1 $1_2+$0_2 $1_3 ⋯ $1_n','$1_1 $1_2 $1_3+$0_3 ⋯ $1_n','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $1_n+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $1_n+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@',A[3]+A[6])],A)),"+
				"$2v('$0_1$0_2⋯$0_n',A)+A[6]+' = '+A[6]+prod('i',1,'n',A[4],'','')"+
				"],['前n-1行都减去第n行','前n-1行分别乘以-'+A[5]+'加到第n行','主对角线元素相乘']))"+
			"}",['x,a','b,a'])



		+fdetail("(x,a){var A=[x,a,a+'_i',a+'_n',neg(x),visiplus(x)];"+
			"A.push(sum('i',1,'n',A[2]+A[5],'',''));"+
			
		"return zdetail('特例：行'+A[1]+'_{1,2,⋯,n}，对角线'+A[1]+'_{1,2,⋯,n}'+A[5],'\\\\small '+"+
			
			"Eq([zdet($2v(['$1_1$5 $1_2 $1_3 ⋯ $1_n','$1_1 $1_2$5 $1_3 ⋯ $1_n','$1_1 $1_2 $1_3$5 ⋯ $1_n','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $1_n$5'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ $4','0 $0 0 ⋯ $4','0 0 $0 ⋯ $4','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $1_n$5'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ 0','0 $0 0 ⋯ 0','0 0 $0 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ @'.replace('@',A[6])],A)),"+
				"simTimesOf1(pow([x,'n-1']),A[6])"+
				"],['前n-1行都减去第n行','前n-1列都加到第n列','主对角线元素相乘']))"+
			"}",['x,a','-b,a','-m,x','1,a'])




		+fdetail("(x,a){var A=[x,a,a+'_i',a+'_n',visiplus(neg(x))];"+
			"A.push(lrp('','1+'+sum('i',1,'n',frac(A[2],A[0]+'-'+A[2],''),'',''),'',''));"+
			
		"return zdetail('特例：行'+A[1]+'_{1,2,⋯,n}，对角线都是'+A[0],'\\\\small '+"+
			
			"Eq([zdet($2v(['$0 $1_2 $1_3 ⋯ $1_n','$1_1 $0 $1_3 ⋯ $1_n','$1_1 $1_2 $0 ⋯ $1_n','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $0'],A)),"+
				"zdet($2v(['$0-$1_1 0 0 ⋯ $1_n$4','0 $0-$1_2 0 ⋯ $1_n$4','0 0 $0-$1_3 ⋯ $1_n$4','⋮ ⋮ ⋮ ⋱ ⋮','$1_1 $1_2 $1_3 ⋯ $0'],A)),"+
				"zdet($2v(['$0-$1_1 0 0 ⋯ $1_n$4','0 $0-$1_2 0 ⋯ $1_n$4','0 0 $0-$1_3 ⋯ $1_n$4','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@','('+A[0]+'-'+A[3]+')'+A[5])],A)),"+
				"$2v('($0-$1_1)($0-$1_2)⋯($0-$1_n)',A)+A[5],"+
				"A[5]+prod('i',1,'n','('+A[0]+'-'+A[2]+')','','')"+
				"],['前n-1行都减去第n行','前n-1行乘以-'+frac(A[2],x+'-'+A[2],'')+'加到第n行','主对角线元素相乘']))"+
			"}",['x,a'])


		+fdetail("(t){var A=[t, frac(1,t+'_i','')]; A.push(lrp('','1+'+sum('i',1,'n',A[1],'',''),'',''));"+
			
		"return zdetail('特例：行1,2,⋯,n，对角线'+$2v('1+$0_1, 2+$0_2, ⋯, n+$0_n',A),'\\\\small '+"+
			
			"Eq([zdet($2v(['1+$0_1 2 3 ⋯ n','1 2+$0_2 3 ⋯ n','1 2 3+$0_3 ⋯ n','⋮ ⋮ ⋮ ⋱ ⋮','1 2 3 ⋯ n+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','1 2 3 ⋯ n+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@',t+'_n'+A[2])],A)),"+
				"$2v('$0_1$0_2⋯$0_n',A)+A[2],"+
				"A[2]+prod('i',1,'n',t+'_i','','')"+
				"],['前n-1行都减去第n行','前n-1行分别乘以-'+A[1]+'加到第n行','主对角线元素相乘']))"+
			"}",['a'])


		+fdetail("(t){var A=[t, plus([1,t]), plus([2,t]), plus([3,t]), plus(['n',t]), neg(t), t+'+'+frac('n(n+1)',2,'')];"+
			
		"return zdetail('特例：行1,2,⋯,n，对角线'+A[1]+', '+A[2]+', ⋯, '+A[4],'\\\\small '+"+
			
			"Eq([zdet($2v(['$1 2 3 ⋯ n','1 $2 3 ⋯ n','1 2 $3 ⋯ n','⋮ ⋮ ⋮ ⋱ ⋮','1 2 3 ⋯ $4'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ $5','0 $0 0 ⋯ $5','0 0 $0 ⋯ $5','⋮ ⋮ ⋮ ⋱ ⋮','1 2 3 ⋯ $4'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ $5','0 $0 0 ⋯ $5','0 0 $0 ⋯ $5','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@',A[6])],A)),"+
				"simTimesOf1(pow([t,'n-1']),A[6])"+
				"],['前n-1行都减去第n行','前n-1列都加到第n列','主对角线元素相乘']))"+
			"}",['a'])




		+fdetail("(a,x){var A=[a,x,a+'_i',x+'_n',visiplus(neg(x))];"+
			"A.push(lrp('','1+'+sum('i',1,'n',frac(x,A[2],''),'',''),'',''), lrp('','1+'+sum('i',1,'n',frac(1,A[2]+A[4],''),'',''),'',''));"+
			
		"return zdetail('特例：行都是'+x+'，对角线'+x+'+'+a+'_1,'+x+'+'+a+'_2,⋯,'+x+'+'+a+'_n','\\\\small '+"+
			
			"Eq([zdet($2v(['$1+$0_1 $1 $1 ⋯ $1','$1 $1+$0_2 $1 ⋯ $1','$1 $1 $1+$0_3 ⋯ $1','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $1+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $1+$0_n'],A)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@',A[3]+A[5])],A)),"+
				"$2v('$0_1$0_2⋯$0_n',A)+A[5],"+
				"A[5]+prod('i',1,'n',A[2],'','')"+
				"],['前n-1行都减去第n行','前n-1行乘以-'+frac(x,A[2],'')+'加到第n行','主对角线元素相乘']))"+
			"}",['x,a','a,x','a,b'])

		+fdetail("(a,x){var A=[a,x,a+'_i',x+'_n',visiplus(neg(x))];"+
			"A.push(lrp('','1+'+sum('i',1,'n',frac(x,A[2],''),'',''),'',''), lrp('','1+'+sum('i',1,'n',frac(1,A[2]+A[4],''),'',''),'',''));"+
			
		"return zdetail('特例：行都是'+x+'，对角线'+a+'_1,'+a+'_2,⋯,'+a+'_n','\\\\small '+"+
			
			"Eq([zdet($2v(['$0_1 $1 $1 ⋯ $1','$1 $0_2 $1 ⋯ $1','$1 $1 $0_3 ⋯ $1','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $0_n'],A)),"+
				"zdet($2v(['$0_1$4 0 0 ⋯ $1-$0_n','0 $0_2$4 0 ⋯ $1-$0_n','0 0 $0_3$4 ⋯ $1-$0_n','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $0_n'],A)),"+
				"zdet($2v(['$0_1$4 0 0 ⋯ $1-$0_n','0 $0_2$4 0 ⋯ $1-$0_n','0 0 $0_3$4 ⋯ $1-$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@','('+(A[3]+A[4])+')'+A[6])],A)),"+
				"$2v('($0_1$4)($0_2$4)⋯($0_n$4)',A)+A[6],"+
				"A[6]+prod('i',1,'n','('+A[2]+A[4]+')','','')"+
				"],['前n-1行都减去第n行','前n-1行分别乘以'+frac(A[1],A[1]+'-'+A[2],'')+'加到第n行','主对角线元素相乘']))"+
			"}",['x,a','a,x','a,b'])


		+fdetail("(a,x){var A=[a,x,minus([a,x])];A.push(neg(A[2]), plus([a,times(['n-1',x])]));"+
			"A.push(pptd(A[4]));"+
			"A.push(A[5]+pppow(A[2])+'^{n-1}', plus([a,times([3,x])]));"+
			"A.push(pptd(A[7])+pppow(A[2])+'^3');"+
			
		"return zdetail('行都是'+A[1]+'，对角线都是'+A[0]+kbr2+'解法1（全减行全加列）：全减去第n行，全加到第n列，化下三角','\\\\small '+"+
			"Eq([zdet($2v(['$0 $1 $1 ⋯ $1','$1 $0 $1 ⋯ $1','$1 $1 $0 ⋯ $1','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $0'],A)),"+
				"zdet($2v(['$2 0 0 ⋯ $3','0 $2 0 ⋯ $3','0 0 $2 ⋯ $3','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $0'],A)),"+
				"zdet($2v(['$2 0 0 ⋯ 0','0 $2 0 ⋯ 0','0 0 $2 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $4'],A)),"+
				"A[6]"+
				"],['前n-1行都减去第n行','前n-1列加到第n列','主对角线元素相乘']))"+
			"}",['x,a','a,x','a,b'])


		+fdetail("(a,x){var A=[a,x,minus([a,x])];A.push(neg(A[2]), plus([a,times(['n-1',x])]));"+
			"A.push(pptd(A[4]));"+
			"A.push(A[5]+pppow(A[2])+'^{n-1}', plus([a,times([3,x])]));"+
			"A.push(pptd(A[7])+pppow(A[2])+'^3');"+
			
		"return zdetail('行都是'+A[1]+'，对角线都是'+A[0]+'【4阶时】','\\\\small '+"+
			"Eq([zdet($2v(['$0 $1 $1 $1','$1 $0 $1 $1','$1 $1 $0 $1','$1 $1 $1 $0'],A)),"+
				"zdet($2v(['$2 0 0 $3','0 $2 0 $3','0 0 $2 $3','$1 $1 $1 $0'],A)),"+
				"zdet($2v(['$2 0 0 0','0 $2 0 0','0 0 $2 0','$1 $1 $1 $7'],A)),"+
				"A[8]"+
				"],['前3行都减去第4行','前3列加到第4列','主对角线元素相乘']))"+

			"}",['x,a','a,x','a,b'])

		+fdetail("(a,x){var A=[a,x,minus([a,x])];A.push(neg(A[2]), plus([a,times(['n-1',x])]));"+
			"A.push(pptd(A[4]));"+
			"A.push(A[5]+pppow(A[2])+'^{n-1}', plus([a,times([3,x])]));"+
			"A.push(pptd(A[7])+pppow(A[2])+'^3');"+
			
		"return zdetail('行都是'+A[1]+'，对角线都是'+A[0]+kbr2+'解法2（全加列，化1，全倍减列）：'+kbr2+'全加到第1列，提列公因子，全倍减第1列，化下三角','\\\\small '+"+
			"Eq([zdet($2v(['$0 $1 $1 ⋯ $1','$1 $0 $1 ⋯ $1','$1 $1 $0 ⋯ $1','⋮ ⋮ ⋮ ⋱ ⋮','$1 $1 $1 ⋯ $0'],A)),"+
				"A[5]+zdet($2v(['1 $1 $1 ⋯ $1','1 $0 $1 ⋯ $1','1 $1 $0 ⋯ $1','⋮ ⋮ ⋮ ⋱ ⋮','1 $1 $1 ⋯ $0'],A)),"+
				"A[5]+zdet($2v(['1 0 0 ⋯ 0','1 $2 0 ⋯ 0','1 0 $2 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','1 0 0 ⋯ $2'],A)),"+
				"A[6]"+
				"],[['将所有列加到第1列','并提取公因子'],'第2～n-1列都减去第1列的'+A[1]+'倍','主对角线元素相乘']))"+
			"}",['x,a','a,x','a,b'])


		+fdetail("(t){var A=[t, t+'_i'];A.push(frac(1,A[1],''));A.push(lrp('','1+'+sum('i',1,'n',A[2],'',''),'',''));"+
			"return zdetail('特例：行都是1，对角线1+'+t+'_1,1+'+t+'_2,⋯,1+'+t+'_n【本例还可以使用加边法】','\\\\small '+"+
			"Eq([zdet($2v(['1+$0_1 1 1 ⋯ 1','1 1+$0_2 1 ⋯ 1','1 1 1+$0_3 ⋯ 1','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ 1+$0_n'],t)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ 1+$0_n'],t)),"+
				"zdet($2v(['$0_1 0 0 ⋯ -$0_n','0 $0_2 0 ⋯ -$0_n','0 0 $0_3 ⋯ -$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@',t+'_n'+A[3])],t)),"+
				"$2v('$0_1$0_2⋯$0_n',t)+A[3],"+
				"A[3]+prod('i',1,'n',A[1],'','')"+
				"],['前n-1行都减去第n行','前n-1行分别乘以-'+frac(1,A[1],'')+'加到第n行','主对角线元素相乘']))"+
			"}",['x','a'])



		+fdetail("(t){var A=[t, plus([1,t]), neg(t), plus([t,'n'])];"+
			"return zdetail('特例：行都是1，对角线都是'+A[1],'\\\\small '+"+
			"Eq([zdet($2v(['$1 1 1 ⋯ 1','1 $1 1 ⋯ 1','1 1 $1 ⋯ 1','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ $1'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ $2','0 $0 0 ⋯ $2','0 0 $0 ⋯ $2','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ $1'],A)),"+
				"zdet($2v(['$0 0 0 ⋯ 0','0 $0 0 ⋯ 0','0 0 $0 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ $3'],A)),"+
				"simTimesOf1(A[3],'',simPowOf1(t,'n-1'))"+
				"],['前n-1行都减去第n行','前n-1列都加到第n列','主对角线元素相乘']))"+
			"}",['x','a','x-1','a-1'])

		+fdetail("(t){var A=[t, t+'_i-1'];A.push(lrp('','1+'+sum('i',1,'n',frac(1,A[1],''),'',''),'',''));"+
			
		"return zdetail('特例：行都是1，对角线'+t+'_1,'+t+'_2,⋯,'+t+'_n','\\\\small '+"+
			
			"Eq([zdet($2v(['$0_1 1 1 ⋯ 1','1 $0_2 1 ⋯ 1','1 1 $0_3 ⋯ 1','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ $0_n'],A)),"+
				"zdet($2v(['$0_1-1 0 0 ⋯ 1-$0_n','0 $0_2-1 0 ⋯ 1-$0_n','0 0 $0_3-1 ⋯ 1-$0_n','⋮ ⋮ ⋮ ⋱ ⋮','1 1 1 ⋯ $0_n'],t)),"+
				"zdet($2v(['$0_1-1 0 0 ⋯ 1-$0_n','0 $0_2-1 0 ⋯ 1-$0_n','0 0 $0_3-1 ⋯ 1-$0_n','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ @'.replace('@','('+t+'_n-1'+')'+A[2])],t)),"+
				"$2v('($0_1-1)($0_2-1)⋯($0_n-1)',t)+A[2],"+
				"A[2]+prod('i',1,'n','('+A[1]+')','','')"+
				"],['前n-1行都减去第n行','前n-1行分别乘以'+frac(1,'1-'+t+'_i','')+'加到第n行','主对角线元素相乘']))"+
			"}",['x','a'])


		+fdetail("(t){var A=[t,minus([1,t]),minus([t,'n']),minus(['n',t]),minus(['n',t,1]),minus([2,t]),minus([3,t]),minus([t,1]), plus(['n',t])],B;"+//A[8]
			"A.push(pptd(A[2]), zdet($2v(['1 $0 $0 ⋯ $0','$0 2 $0 ⋯ $0','$0 $0 3 ⋯ $0','⋮ ⋮ ⋮ ⋱ ⋮','$0 $0 $0 ⋯ n'],A)));"+
			"if(t=='1'){B=Eq([A[10],"+
				"zdet(['1 0 0 ⋯ 0 0','0 1 0 ⋯ 0 0','0 0 2 ⋯ 0 0','⋮ ⋮ ⋮ ⋱ 0 ⋮','0 0 0 ⋯ n-2 0','0 0 0 ⋯ 0 n-1']),"+
				"'(n-1)!'"+
				"],['后n-1列都减去第1列','主对角线元素相乘'])"+
			"}else if(t=='n'){B=Eq([A[10],"+
				"zdet($2v(['$1 0 0 ⋯ 0 $0','0 $5 0 ⋯ 0 $0','0 0 $6 ⋯ 0 $0','⋮ ⋮ ⋮ ⋱ 0 ⋮','0 0 0 ⋯ $4 $0','$2 $2 $2 ⋯ $2 n'],A)),"+
				"'(-1)^{n-1}(n-1)!'"+
				"],['后n-1列都减去第1列','主对角线元素相乘'])"+
			"}else{B=Eq([A[10],"+
				"zdet($2v(['$1 0 0 ⋯ 0 $0','0 $5 0 ⋯ 0 $0','0 0 $6 ⋯ 0 $0','⋮ ⋮ ⋮ ⋱ 0 ⋮','0 0 0 ⋯ $4 $0','$2 $2 $2 ⋯ $2 n'],A)),"+
				"'(-1)^{'+A[8]+'}'+A[9]+zdet($2v(['$1 0 ⋯ 0 $0','0 $5 ⋯ 0 $0','0 '+(t=='2'?1:0)+' ⋯ 0 $0','⋮ ⋮ ⋱ ⋮ ⋮','0 0 ⋯ $4 $0'],A)),"+
				"'(-1)^{'+A[8]+'}'+A[9]+'(-1)^{'+plus(['n',A[7]])+'}'+pptd(t)+"+
				"zdet($2v(['$1 0 ⋯ 0','0 '+(t=='2'?1:'$5')+' ⋯ 0','⋮ ⋮ ⋱ ⋮','0 0 ⋯ $4'],A)),"+
				"pptd(pow([-1,A[7]]),1)+simFactTimes(t)+simFactTimes(A[3])"+
				"],['前n-1列都减去第n列','按第'+t+'列展开','按第'+t+'行展开','主对角线元素相乘'])}"+
				
		"return zdetail('特例：行都是'+t+'，对角线1,2,⋯,n','\\\\small '+B)"+
			
		"}",[1,2,3,4,'n','k'])




		+kdc('变体（偶列反，主变副）：偶数列反号，主对角阵变副对角阵')
		+kdc('特别解法（先加后减）：先全加到1列，然后减')
			
		+fdetail("(x){var A=[x, minus([x,1]), plus([x,1]), neg(x), pptd(x,1)];A.push(pptd(A[3]));"+
			
		"return zdetail('特例：两列1，两列-1，副对角线'+x+'±1','\\\\small '+"+
			
			"Eq([det([[1,-1,1,A[1]],[1,-1,A[2],-1],[1,A[1],1,-1],[A[2],-1,1,-1]],''),"+
				"A[4]+det([[1,-1,1,A[1]],[1,-1,A[2],-1],[1,A[1],1,-1],[1,-1,1,-1]],''),"+
				"A[4]+det([[1,0,0,x],[1,0,x,0],[1,x,0,0],[1,0,0,0]],''),"+
				"A[4]+A[5]+pptd(x)+A[5],"+
				"square(square(x))"+
				"],[['所有列加到第1列','并提取第1列公因子x'],['第2、4列加上第1列','第3列减去第1列'],'反复按最后1列展开']))"+
			"}",['x','a'])
			
		+fdetail("(x){var A=[x, minus([x,1]), minus([x,2]), neg(x)]; A.push(times([A[3],A[2]])); A.push(minus([A[4],4])); A.push(times(A.slice(4)));"+
			
		"return zdetail('特例：两列1，两列-1，副对角线'+A[1],'\\\\small '+"+
			
			"Eq([zdet($2v(['1 -1 1 $1','1 -1 $1 -1','1 $1 1 -1','$1 -1 1 -1'],A)),"+
				"zdet($2v(['$0 -1 1 $1','$2 -1 $1 -1','$0 $1 1 -1','$2 -1 1 -1'],A)),"+
				"zdet($2v(['0 -$0 0 $0','0 0 $2 0','2 $0 0 0','$2 -1 1 -1'],A)),"+
				"zdet($2v(['0 0 0 $0','0 0 $2 0','2 $0 0 0','$2 -2 1 -1'],A)),"+
				"A[4]+zdet($2v(['2 $0','$2 -2'],A)),"+
				"A[4]+pptd(A[5]),"+
				"neg(A[4])+pptd(Mfn.oprs(['-','+'], [square(x),times([2,x]),4]))"+
				"],['所有列加到第1列',['第1行减去第3行','第2,3行减去第4行'],'第2列加上第4列',['按第1行展开得到3阶行列式','再按第1行展开得到2阶行列式'],'按对角线展开']))"+
			"}",['x','a'])
			
		,'','____'),

	ZLR('标准多项式行列式'+kbr+'\\small '+zdet(['x -1 0 ⋯ 0','0 x -1 ⋯ 0','0 0 x ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','a_0 a_1 a_2 ⋯ a_n'])+kbr2+'=a_nx^n+a_{n-1}x^{n-1}+⋯+a_0____'
		+zdetail('D_n反复按第1列展开，得到递推式','\\small '+
		Eq([zdet(['x -1 0 ⋯ 0','0 x -1 ⋯ 0','0 0 x ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','a_0 a_1 a_2 ⋯ a_n']),
			'x'+zdet(['x -1 ⋯ 0','0 x ⋯ 0','⋮ ⋮ ⋱ ⋮','a_1 a_2 ⋯ a_n'])+'+(-1)^{n+1}a_0'+zdet(['-1 0 ⋯ 0','x -1 ⋯ 0','0 x ⋱ 0','⋮ ⋮ ⋱ -1']),
			'xD_{n-1}+a_0',
			'x(xD_{n-2}+a_1)+a_0',
			'x^2D_{n-2}+a_1x+a_0',
			'x^2(xD_{n-3}+a_2)+a_1x+a_0',
			'x^3D_{n-3}+a_2x^2+a_1x+a_0',
			'⋯',
			'a_nx^n+a_{n-1}x^{n-1}+⋯+a_0'
			],['按第1列展开',['后面的行列式是下三角行列式','主对角线元素相乘'],'继续按第1列展开','去括号','继续按第1列展开','去括号','']))
		,'','____'),

	ZLR(kxf('爪形行列式 Claw')+
		'____每一列乘以相应倍数加到第1列，将其第1行下方的行都化为0，得到上三角'
		,'','____'),
			
	ZLR('X形行列式'+kbr+'\\small '+'D_{2n} = '+zdet(['a     b',' ⋱   ⋰ ','  a b  ','  c d  ',' ⋰   ⋱ ','c     d'])+kbr2+'=(ad-bc)^n'
		+'____'

		+fdetail("(a,b,c,d){var A=[a,b,c,d,times([a,d]),times([b,c])];"+
			"A.push(pppow(minus([A[4],A[5]])));"+

		"return zdetail('特例：'+'\\\\small '+det([[a,b],[c,d]],'')+'='+A[6]+'^n','\\\\small '+"+
			
			"Eq([zdet($2v(['$0     $1',' ⋱   ⋰ ','  $0 $1  ','  $2 $3  ',' ⋰   ⋱ ','$2     $3'],A)),"+
				"$2v('$0'+zdet(['⋱   ⋰ ',' $0 $1  ',' $2 $3  ','⋰   ⋱ ','    $3'])+'+(-1)^{2n+1}'+pptd(A[2])+zdet(['    $1','⋱   ⋰ ',' $0 $1  ',' $2 $3  ','⋰   ⋱ ']),A),"+
				"pptd(A[4],1)+'D_{2n-2} + (-1)^{2n+1}'+pptd(A[2])+'(-1)^{2n}'+pptd(A[1])+'D_{2n-2}',"+
				"A[6]+'D_{2n-2}',"+
				"A[6]+'^2D_{2n-4}',"+
				"'⋯',"+
				"A[6]+'^n']"+
				",['按第1列展开','再分别按最后1列展开']))"+
			"}",['a,b,c,d','a,b,b,a'])


		+fdetail("(a,b,c,d){var A=[a,b,c,d];A.push(zdet($2v(['$0_1 $1_1','$2_1 $3_1'],A)), prod('i',1,'n',$2v('($0_i$3_i-$1_i$2_i)',A),'',''));"+
			
		"return zdetail('特例：'+'\\\\small '+A[4]+' = '+A[5],'\\\\small '+"+
			
			"Eq($2v([zdet(['$0_n     $1_n',' ⋱   ⋰ ','  $0_1 $1_1  ','  $2_1 $3_1  ',' ⋰   ⋱ ','$2_n     $3_n']),"+
				"'$0_n'+zdet(['⋱   ⋰ ',' $0_1 $1_1  ',' $2_1 $3_1  ','⋰   ⋱ ','    $3_n'])+'+(-1)^{2n+1}$2_n'+zdet(['    $1_n','⋱   ⋰ ',' $0_1 $1_1  ',' $2_1 $3_1  ','⋰   ⋱ ']),"+
				"'$0_n$3_nD_{2n-2} + (-1)^{2n+1}$2_n(-1)^{2n}$1_nD_{2n-2}',"+
				"'($0_n$3_n-$1_n$2_n)D_{2n-2}',"+
				"'($0_n$3_n-$1_n$2_n)($0_{n-1}$3_{n-1}-$1_{n-1}$2_{n-1})D_{2n-4}',"+
				"'⋯',"+
				"A[5]],A)"+
				",['按第1列展开','再分别按最后1列展开']))"+
			"}",['a,b,c,d'])
		,'','____'),


	ZLR('行和相等____'+
		fdetail("(x,y,z){var A=[x,y,neg(x),neg(y),plus([x,y]),minus([x,y]),times([2,x]),times([2,y])];"+//A[7]
			"A.push(plus([A[6],A[7]]),times([2,A[4]]),plus([neg(square(x)),times([y,A[5]])]),plus([minus([square(x),times([x,y])]),square(y)]));"+//A[11]
			"A.push(Times([-2,A[4],A[11]]).toStr(),times([-2,plus([cubic(x), cubic(y)])]),Times([A[9],A[10]]).toStr());"+
		
		"return zdetail('特例：'+'\\\\small '+zdet($2v(['$0 $1 $4','$1 $4 $0','$4 $0 $1'],A))+'='+A[13],'\\\\small '+"+
		
			"Eq([zdet($2v(['$0 $1 $4','$1 $4 $0','$4 $0 $1'],A)),"+
				"zdet($2v(['$8 $1 $4','$8 $4 $0','$8 $0 $1'],A)),"+
				"A[9]+zdet($2v(['1 $1 $4','1 $4 $0','1 $0 $1'],A)),"+
				"A[9]+zdet($2v(['1 $1 $4','0 $0 $3','0 $5 $2'],A)),"+
				"A[9]+zdet($2v(['$0 $3','$5 $2'],A)),"+
				"A[14],A[12],A[13]"+
				"],['第2、3列加到第1列','提取第1列公因子','第2、3行减去第1行','按第1列展开','按对角线法则展开','化简','即'])"+
			")}",['x,y','a,b'])
		,'','____'),
		
		
		
	ZLR('拆列____'+
		fdetail("(x,y,z){var A=[x,y,z,square(x),square(y),square(z),times([x,y]),times([x,z]),times([y,z])];"+//A[8]
			"A.push(plus([A[3],1]),plus([A[4],1]),plus([A[5],1]),plus([A[3],A[4],A[5],1]));"+//A[12]
			"A.push(plus([times([A[10],A[11]]), neg(square(A[8]))]));"+
			"A.push(Plus([A[3],A[13]]).toStr(), neg(A[1]), neg(A[2]), pptd(A[0],1));"+
		
		"return zdetail('特例：'+'\\\\small '+zdet($2v(['$9 $6 $7','$6 $10 $8','$7 $8 $11'],A))+'='+A[12],'\\\\small '+"+
		
			"Eq([zdet($2v(['$9 $6 $7','$6 $10 $8','$7 $8 $11'],A)),"+
				"zdet($2v(['$0^2 $6 $7','$6 $10 $8','$7 $8 $11'],A))+'+'+"+
				"zdet($2v(['1 $6 $7','0 $10 $8','0 $8 $11'],A)),"+
				"A[17]+zdet($2v(['$0 $6 $7','$1 $10 $8','$2 $8 $11'],A))+'+'+"+
				"zdet($2v(['$10 $8','$8 $11'],A)),"+
				"A[17]+zdet($2v(['$0 0 0','$1 1 0','$2 0 1'],A))+visiplusk(A[13]),"+
				"A[14],"+
				"A[12]"+
				"],['拆开第1列',['第1个行列式提取第1列公因子','第2个行列式按第1列展开'],"+
					"['第1个行列式第1列分别乘以'+A[15]+'，'+A[16]+'加到第2、3列','第2个行列式按对角线法则展开'],"+
					"'行列式对角线元素相乘','化简'])"+
			")}",['x,y,z','a,b,c'])
				
		+fdetail("(x,y,z){var A=[x,y,z,square(x),square(y),square(z),times([x,y]),times([x,z]),times([y,z])];"+//A[8]
			"A.push(plus([A[3],A[4]]),plus([A[3],A[5]]),plus([A[4],A[5]]),times([4,A[3],A[4],A[5]]));"+//A[12]
			"A.push(minus([A[11],A[3]]),minus([A[10],A[4]]),minus([A[9],A[5]]),pptd(x,1));"+//A[16]
			"A.push(visiplusk(pptd(A[13],1)), square(A[3]));"+
			
		"return zdetail('变体：'+'\\\\small '+zdet($2v(['$11 $6 $7','$6 $10 $8','$7 $8 $9'],A))+'='+A[12],'\\\\small '+"+
			
			"Eq([zdet($2v(['$11 $6 $7','$6 $10 $8','$7 $8 $9'],A)),"+
				"zdet($2v(['$0^2 $6 $7','$6 $10 $8','$7 $8 $9'],A))+'+'+"+
				"zdet($2v(['$13 $6 $7','0 $10 $8','0 $8 $9'],A)),"+
				"A[16]+zdet($2v(['$0 $6 $7','$1 $10 $8','$2 $8 $9'],A))+A[17]+zdet($2v(['$10 $8','$8 $9'],A)),"+
				"A[16]+zdet($2v(['$0 0 0','$1 $14 0','$2 0 $15'],A))+visiplusk(simTimesOf1(A[13],minus([times([A[10],A[9]]),square(A[8])]))),"+
				"pptd(A[3])+times([A[14],A[15]])+visiplusk(times([A[13],A[3],plus([A[9],A[5]])])),"+

				"simTimesOf1(A[3],minus([A[18],square(minus([A[4],A[5]]))]))+'+'+simTimesOf1(A[3],minus([square(A[11]),A[18]])),"+

				"A[12]"+
				"],['拆开第1列',['第1个行列式提取第1列公因子','第2个行列式按第1列展开'],"+
				"['第1个行列式第1列分别乘以'+neg(A[1])+'，'+neg(A[2])+'加到第2、3列','第2个行列式按对角线法则展开'],"+
				"'行列式对角线元素相乘',"+
				"'化简',"+
				"'最终结果'])"+
			")}",['x,y,z','a,b,c'])

		+fdetail("(a,b,x,y,z){var A=[a,b,x,y,z,times([a,x]),times([b,x]),times([a,y]),times([b,y]),times([a,z]),times([b,z])];"+
			"A.push(plus([A[5],A[8]]),plus([A[7],A[10]]),plus([A[9],A[6]]),square(a),square(b),cubic(a),cubic(b));"+//A[17]
			"A.push(pptd(plus([A[16],A[17]]),1), pptd(A[16],1), visiplusk(pptd(A[17])));"+
			"A.push(pptd(A[0],1), visiplusk(pptd(A[1],1)));"+//A[21] A[22]
			"A.push(zdet($2v(['$2 $3 $4','$3 $4 $2','$4 $2 $3'],A)),zdet($2v(['$3 $4 $2','$4 $2 $3','$2 $3 $4'],A)));"+
			"A.push(zdet($2v(['$11 $12 $13','$12 $13 $11','$13 $11 $12'],A)),$2v('$18 $23',A),pptd(A[1],1));"+
			
		"return zdetail('特例：（对称）'+'\\\\small '+A[25]+' = '+A[26],'\\\\small '+"+
				
			"Eq([A[25],"+
				"zdet($2v(['$5 $12 $13','$7 $13 $11','$9 $11 $12'],A))+'+'+zdet($2v(['$8 $12 $13','$10 $13 $11','$6 $11 $12'],A)),"+
				"A[21]+zdet($2v(['$2 $12 $13','$3 $13 $11','$4 $11 $12'],A))+A[22]+zdet($2v(['$3 $12 $13','$4 $13 $11','$2 $11 $12'],A)),"+
				"pptd(A[14],1)+zdet($2v(['$2 $12 $4','$3 $13 $2','$4 $11 $3'],A))+visiplusk(pptd(A[15],1))+zdet($2v(['$3 $4 $13','$4 $2 $11','$2 $3 $12'],A)),"+
				"$2v('$19 $23 $20 $24',A),"+
				"$2v('$19 $23 $20 $23',A),"+
				"A[26]"+
			"],['拆开第1列','第1列提取公因子',['第1个行列式第1列乘以'+neg(b)+'加到第3列，并提取第3列公因子','第2个行列式第1列乘以'+neg(a)+'加到第2列，并提取第2列公因子'],"+
			"['第1个行列式第3列乘以'+neg(b)+'加到第2列，并提取第2列公因子','第2个行列式第2列乘以'+neg(a)+'加到第3列，并提取第3列公因子'],'','']))"+
			"}",['a,b,x,y,z'])

		+fdetail("(a,b,x,y,z){var A=[a,b,x,y,z,times([a,x]),times([b,x]),times([a,y]),times([b,y]),times([a,z]),times([b,z])];"+
			"A.push(plus([A[8],A[9]]),plus([A[10],A[5]]),plus([A[6],A[7]]),square(a),square(b),cubic(a),cubic(b));"+
			"A.push(pptd(plus([A[16],A[17]]),1), pptd(A[17],1), visiplusk(pptd(A[16])));"+
			"A.push(pptd(A[1],1), visiplusk(pptd(A[0],1)));"+//A[21] A[22]
			"A.push(zdet($2v(['$3 $4 $2','$2 $3 $4','$4 $2 $3'],A)),zdet($2v(['$4 $2 $3','$3 $4 $2','$2 $3 $4'],A)));"+
			"A.push(zdet($2v(['$11 $12 $13','$13 $11 $12','$12 $13 $11'],A)),'',pptd(A[1],1));"+
			"A.push(zdet($2v(['$2 $3 $4','$4 $2 $3','$3 $4 $2'],A)));A[26]=$2v('$18 $28',A);"+
			
		"return zdetail('变体：（对角线相同）'+'\\\\small '+A[25]+' = '+A[26],'\\\\small '+"+
				
			"Eq([A[25],"+
				"zdet($2v(['$8 $12 $13','$6 $11 $12','$10 $13 $11'],A))+'+'+zdet($2v(['$9 $12 $13','$7 $11 $12','$5 $13 $11'],A)),"+
				"A[21]+zdet($2v(['$3 $12 $13','$2 $11 $12','$4 $13 $11'],A))+A[22]+zdet($2v(['$4 $12 $13','$3 $11 $12','$2 $13 $11'],A)),"+
				"pptd(A[15],1)+zdet($2v(['$3 $12 $2','$2 $11 $4','$4 $13 $3'],A))+visiplusk(pptd(A[14],1))+zdet($2v(['$4 $2 $13','$3 $4 $12','$2 $3 $11'],A)),"+
				"$2v('$19 $23 $20 $24',A),"+
				"$2v('$19 $28 $20 $28',A),"+
				"A[26]"+
			"],['拆开第1列','第1列提取公因子',['第1个行列式第1列乘以'+neg(a)+'加到第3列，并提取第3列公因子','第2个行列式第1列乘以'+neg(b)+'加到第2列，并提取第2列公因子'],"+
			"['第1个行列式第3列乘以'+neg(a)+'加到第2列，并提取第2列公因子','第2个行列式第2列乘以'+neg(b)+'加到第3列，并提取第3列公因子'],'','']))"+
			"}",['a,b,x,y,z'])
		,'','____'),
	

	ZLR('增行增列____'

		+fdetail("(t){var A=[t];"+
			"A.push($2v('1+$0_1^2+$0_2^2+⋯+$0_n^2',A),zdet($2v(['1+$0_1^2 $0_1$0_2 ⋯ $0_1$0_n','$0_2$0_1 1+$0_2^2 ⋯ $0_2$0_n','⋮ ⋮ ⋱ ⋮','$0_n$0_1 $0_n$0_2 ⋯ 1+$0_n^2'],A)));"+
		
		"return zdetail('各元素含二次项'+'\\\\small '+A[2]+'='+A[1],'\\\\small '+"+
		
			"Eq([A[2],"+
				"zdet($2v(['1 0 0 ⋯ 0','$0_1 1+$0_1^2 $0_1$0_2 ⋯ $0_1$0_n','$0_2 $0_2$0_1 1+$0_2^2 ⋯ $0_2$0_n','⋮ ⋮ ⋮ ⋱ ⋮','$0_n $0_n$0_1 $0_n$0_2 ⋯ 1+$0_n^2'],A)),"+
				"zdet($2v(['1 -$0_1 -$0_2 ⋯ -$0_n','$0_1 1 0 ⋯ 0','$0_2 0 1 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','$0_n 0 0 ⋯ 1'],A)),"+
				"zdet($2v(['1+$0_1^2+$0_2^2+⋯+$0_n^2 -$0_1 -$0_2 ⋯ -$0_3','0 1 0 ⋯ 0','0 0 1 ⋯ 0','⋮ ⋮ ⋮ ⋱ ⋮','0 0 0 ⋯ 1'],A)),"+
				"A[1]"+
				"],['增行增列',[$2v('第1列，分别乘以-$0_1,-$0_2,⋯,-$0_3',A),'加到第2～n+1列'],['第2～'+$2v('n+1列，分别乘以-$0_1,-$0_2,⋯,-$0_3',A),'加到第1列'],['得到上三角行列式','主对角线元素相乘']]))"+
			"}",['a','x'])


		+fdetail("(x,y){var A=[x,y,neg(x), neg(y), minus([x,1]), minus([y,1])];A.push(minus([A[2],1]), minus([A[3],1]),'');"+
			"A.push(rcp(A[4]), rcp(A[5]), rcp(A[6]), rcp(A[7]), square(x), square(y));"+

			"A.push(plus([times([A[13],A[14]]),A[13],A[14],-3],1));A[8]=times([minus([A[13],1]),minus([A[14],1])]);"+
			"A.push(pmtds([A[15],A[8]],3));"+
		
		"return zdetail('特例：（对角有成对相反数，且对角元不含1）'+'\\\\small '+zdet($2v(['$0 1 1 1','1 $2 1 1','1 1 $1 1','1 1 1 $3'],A))+'='+A[15]+kbr2+"+
		
			"'特别解法（增行增列，化爪形）','\\\\small '+"+
			"Eq([zdet($2v(['$0 1 1 1','1 $2 1 1','1 1 $1 1','1 1 1 $3'],A)),"+
				"zdet($2v(['1 1 1 1 1','0 $0 1 1 1','0 1 $2 1 1','0 1 1 $1 1','0 1 1 1 $3'],A)),"+
				"zdet($2v(['1 1 1 1 1','-1 $4 0 0 0','-1 0 $6 0 0','-1 0 0 $5 0','-1 0 0 0 $7'],A)),"+
				"zdet($2v(['$16 1 1 1 1','0 $4 0 0 0','0 0 $6 0 0','0 0 0 $5 0','0 0 0 0 $7'],A)),"+
				"A[15]"+
				"],['增行增列','第2～5行减去第1行',['得到爪形行列式','第2～5列，分别乘以'+A.slice(9,13)+'加到第1列'],['得到上三角行列式','主对角线元素相乘']]))"+
				"}",['x,y'])

		+fdetail("(x,y){var A=[x,y,pmtds([1,x],0), pmtds([1,x],1), pmtds([1,y],0), pmtds([1,y],1), times([square(x),square(y)],1), neg(x), neg(y)];"+
			"A.push(rcp(x), rcp(y));A.push(neg(A[9]), neg(A[10]));"+
			
		"return zdetail('变体：（对角有成对相反数，且对角元不含1）'+'\\\\small '+zdet($2v(['$2 1 1 1','1 $3 1 1','1 1 $4 1','1 1 1 $5'],A))+'='+A[6]+'\\\\ '+"+
		
			"'特别解法（增行增列，化爪形）','\\\\small '+"+
			"Eq([zdet($2v(['$2 1 1 1','1 $3 1 1','1 1 $4 1','1 1 1 $5'],A)),"+
				"zdet($2v(['1 1 1 1 1','0 $2 1 1 1','0 1 $3 1 1','0 1 1 $4 1','0 1 1 1 $5'],A)),"+
				"zdet($2v(['1 1 1 1 1','-1 $0 0 0 0','-1 0 $7 0 0','-1 0 0 $1 0','-1 0 0 0 $8'],A)),"+
				"zdet($2v(['1 1 1 1 1','0 $0 0 0 0','0 0 $7 0 0','0 0 0 $1 0','0 0 0 0 $8'],A)),"+
				"A[6]"+
				"],['增行增列','第2～5行减去第1行',['得到爪形行列式','第2～5列，分别乘以'+A.slice(9)+'加到第1列'],['得到上三角行列式','主对角线元素相乘']]))"+
				"}",['a,b','x,y','x,x'])

		,'','____'),
			

],'TBrc wiki'));
	



